//
//  GAKKIBaseTableViewCell.h
//  GANGAIKit
//
//  Created by fh on 2019/11/6.
//  Copyright © 2019 cashchina. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "GAKKIConfig.h"

NS_ASSUME_NONNULL_BEGIN

/// TableViewCell基类
@interface GAKKIBaseTableViewCell : UITableViewCell

/// 快速创建可重用的cell工厂类方法:子类调用,使用类名作为标识符
/// @param tableView tableView
+ (instancetype)dequeueReusableCellWithTable:(UITableView * __nullable)tableView;

/// 快速创建可重用的cell工厂类方法:子类调用
/// @param tableView tableView
/// @param identifier 重用标识符
/// @param shouldAutoSetupSubViews 是否自动调用setupView进行布局,为YES子类只需要实现setupView方法即可
+ (instancetype)dequeueReusableCellWithTable:(UITableView * __nullable)tableView reusableIdentifier:(NSString * __nullable)identifier shouldAutoSetupSubViews:(BOOL)shouldAutoSetupSubViews;

/// 配置子视图:子类实现
- (void)setupView;

/// 清除所有子视图:当生成的局部控件添加到contentView的时候会导致控件复用,这个方法就可以用于清理局部控件然后重新添加
- (void)cleanAllSubviews;

@end

NS_ASSUME_NONNULL_END
